package com.onlyoffice.demo.onlyoffice.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 文件
 *
 * @author ZWX
 * @date 2025-07-09
 */
@Data
@TableName("file")
public class File {

    /**
     * 文件Id
     */
    @TableId(type = IdType.AUTO)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long fileId;

    /**
     * 文件名称
     */
    private String fileName;

    /**
     * 后缀名
     */
    private String suffix;

    /**
     * 文件大小
     */
    private Long size;

    /**
     * 原文件名称
     */
    private String originalFileName;

    /**
     * 上传时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime uploadTime;

    /**
     * 上传用户
     */
    private String uploadUser;

    /**
     * 访问路径
     */
    private String url;

    /**
     * 文件key
     */
    private String fileKey;

    /**
     * 当前版本
     */
    private Integer currentVersion;
}
